Use of barcodes is becoming more widespread, including use of barcodes for identifying many different types of things, including, but not limited to commercial goods, such as groceries, product packages of various types, printed reading material. A barcode typically assigns a unique identifier to a particular commodity. As a result automatic recognition of barcodes is very helpful when information about the commodity is to be retrieved from a database.
A barcode is a graphic identifier used to encode a set of digits or characters. A barcode comprises a series of bars and spaces, which may have different widths according to various encoding rules, such as the standard commodity barcode EAN13 barcode specification. FIG. 1 illustrates components of a typical prior art EAN-13 barcode.
An EAN-13 barcode can be divided into four main components: a number system 110, a manufacturer code 112, a product code 114, and a check digit 116. The first number-system digit is usually printed on the bottom of the left side of the start sentinel 100. The second number-system digit is printed as the first character of a six digits numbers group on the left-hand side below the barcode. The five-digit manufacturer code 112 is located on the left-hand side below the barcode. The first five digits on the right-hand side below the barcode is the product code 114. Finally, the check digit 116 is printed as the last digit on the right-hand side below the barcode.
The basic encoding scheme is as follows: a dark bar module in a barcode represents the number “1”, whereas a light space module of the barcode represents the number “0”. So, a binary number 1101 can be represented by a double-wide bar (11), followed by a single-wide space (0), and a single-wide bar (1). The corresponding barcode clip is illustrated in FIG. 2.
An EAN-13 barcode has the following physical structures: left-hand guard bars, also referred to as start sentinel 100, encoded as binary 101; center guard bar 102, encoded as binary 01010; right-hand guard bars, also referred to as end sentinel 104, encoded as binary 101.
An EAN-13 character is represented in 7 modules consisting of 2 bars and 2 spaces. No bar or space may be longer than 4 modules. Further encoding-scheme details may be found in an EAN-13 encoding table.
As mentioned above, use of barcodes for identifying commercial goods is now pervasive. A special-purpose device, such as laser or CCD scanner, is usually needed for traditional barcode-recognition methods. Such devices commonly comprise complex optical and mechanical subsystems. Their expensive prices and large form factors have precluded utilization of traditional barcode-recognition techniques in conjunction with mobile camera-equipped devices.
Image sensors and digital cameras are more popular than ever. Increasing numbers of mobile devices have built-in cameras. Robust barcode-recognition method techniques that would allow users of camera-equipped mobile devices to perform barcode recognition would be desirable. A mobile device with a built-in camera and real-time barcode-recognition ability would enable a user to capture, store, and acquire information more easily than is available via conventional information-gathering techniques.